# -*- coding: utf-8 -*-
'''
Created on 18 de Abr de 2011

@author: Eduardo Cardeira

Este ficheiro cont�m a classe EscreverEstatisticasCSV que serve para escrever as varias estatisticas necessarias em ficheiros csv.

'''

# Imports Necessários
from ObterEstatisticas import ObterEstatisticas
import csv

class EscreverEstatisticasCSV():
    
    # Inicializa variáveis da classe
    def __init__(self):
        
        self.obterInfo = ObterEstatisticas()
        
    pass
    
    # Escreve num ficheiro csv o nº de docentes no Ensino Superior em cada ano de 2000 a 2009
    def escrever_docentes_ano(self):

        ficheiro = open('docentes_ano.csv', "wb")
        csvwriter = csv.writer(ficheiro, delimiter=',')
        
        listaNDocentes = []
        
        listaAnos = []

        for i in range(0, 10):

            listaNDocentes.insert(i, self.obterInfo.obter_docentes_ano(i))

            listaAnos.append(i)

            print listaNDocentes[i]

        pass
    
        for x in range(len(listaNDocentes)):
                
                csvwriter.writerows([[listaAnos[x], listaNDocentes[x]]])
                pass

        ficheiro.close()
        
        pass
    
    pass
        
    # Escreve num ficheiro csv o nº de docentes em cada estabelecimento num ano especifico
    def escrever_docentes_estabelecimento_ano(self):

        count = 0

        ficheiro = open('docentes_estabelecimento_ano.csv', "wb")
        csvwriter = csv.writer(ficheiro, delimiter=',')
        
        listaNDocentes = []

        listaEstabelecimentos = []

        listaAnos = []
        
        for i in range(0, 10):

            listaConsultaEstabelecimentos = self.obterInfo.listar_estabelecimentos_ano(i)

            print "Ano 200{0}".format(i)

            for j in listaConsultaEstabelecimentos:
                
                listaNDocentes.append(self.obterInfo.obter_docentes_ano_estabelecimento(i, j))
                
                listaEstabelecimentos.append(j)
                
                listaAnos.append(i)
                
                print j
                print listaNDocentes[count]
                
                count += 1
                
            pass
    
        pass
    
        for x in range(len(listaNDocentes)):
                
            csvwriter.writerow([listaAnos[x], listaEstabelecimentos[x], listaNDocentes[x]])
            pass

        ficheiro.close()
        
        pass
    
    pass
        
    # Escreve num ficheiro csv o nº de docentes possuidores de cada grau num ano especifico
    def escrever_docentes_grau_ano(self):

        count = 0

        ficheiro = open('docentes_grau_ano.csv', "wb")
        csvwriter = csv.writer(ficheiro, delimiter=',')
        
        listaNDocentes = []

        listaGraus = []

        listaAnos = []
        
        for i in range(0, 10):
        
            listaConsultaGraus = self.obterInfo.listar_graus_ano(i)

            print "Ano 200{0}".format(i)

            for j in listaConsultaGraus:
                
                listaNDocentes.append(self.obterInfo.obter_docentes_ano_grau(i, j))
                
                listaGraus.append(j)
                
                listaAnos.append(i)
                
                print j
                print listaNDocentes[count]
                
                count += 1
                
            pass
        
        pass
    
        for x in range(len(listaNDocentes)):
                
                csvwriter.writerow([listaAnos[x], listaGraus[x], listaNDocentes[x]])
                pass

        ficheiro.close()
        
        pass
    
    pass    
        
        
    # Escreve num ficheiro csv o nº de docentes possuidores um grau, pertencentes a um estabelecimento num ano especifico
    def escrever_docentes_estabelecimento_grau_ano(self):

        count = 0

        ficheiro = open('docentes_estabelecimento_grau_ano.csv', "wb")
        csvwriter = csv.writer(ficheiro, delimiter=',')
        
        listaNDocentes = []

        listaEstabelecimentos = []

        listaGraus = []

        listaAnos = []

        for i in range(0, 10):

            print "Ano 200{0}".format(i)

            listaEstabelecimentos = self.obterInfo.listar_estabelecimentos_ano(i)
            
            listaGraus = self.obterInfo.listar_graus_ano(i)

            for j in listaEstabelecimentos:
                
                print j
                
                for k in listaGraus:
                    
                    listaNDocentes.append(self.obterInfo.obter_docentes_ano_grau_estabelecimento(i, k, j))

                    listaEstabelecimentos.append(j)

                    listaGraus.append(k)

                    listaAnos.append(i)
                    
                    print k
                    
                    print listaNDocentes[count]
                    
                    count += 1
                    
                pass
            
            pass
        
        pass
    
        for l in range(len(listaNDocentes)):
                
                csvwriter.writerow([listaAnos[l], listaEstabelecimentos[l], listaGraus[l], listaNDocentes[l]])
                pass

        ficheiro.close()
        
        pass
    
    pass    
        
# Chamada aos métodos de escrita        
        
escrever = EscreverEstatisticasCSV()

#escrever.escrever_docentes_ano()

#escrever.escrever_docentes_estabelecimento_ano()

escrever.escrever_docentes_grau_ano()

escrever.escrever_docentes_estabelecimento_grau_ano()

